package com.itkjb.leisurely.resource.sys.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.itkjb.leisurely.core.base.BaseModelWithOperationFields;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Set;

/**
 * <p>
 * 用户组织关系对象，组织成员
 * </p>
 *
 * @author itkjb.com
 * @since 2020-07-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_user_dep")
@ApiModel(value="SysUserDepModel-模型", description="用户组织关系对象，组织成员")
public class SysUserDepModel extends BaseModelWithOperationFields {

    private static final long serialVersionUID=1L;

    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private String id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @TableField("`user_id`")
    private String userId;

    /**
     * 组织id
     */
    @ApiModelProperty(value = "组织id")
    @TableField("`dep_id`")
    private String depId;

    /**
     * 岗位id
     */
    @ApiModelProperty(value = "岗位id")
    @TableField("`station_id`")
    private String stationId;

    /**
     * 岗位名称
     */
    @ApiModelProperty(value = "岗位名称")
    @TableField("`station_name`")
    private String stationName;

    /**
     * 成员名称
     */
    @ApiModelProperty(value = "成员名称")
    @TableField("`member_name`")
    private String memberName;

    /**
     * 用户岗位职级
     */
    @ApiModelProperty(value = "用户岗位职级")
    @TableField("`user_position`")
    private String userPosition;

    /**
     * 岗位职级编号，例如1，2，3
     */
    @ApiModelProperty(value = "岗位职级编号，例如1，2，3")
    @TableField("`position_code`")
    private Integer positionCode;

    /**
     * 用户员工编号
     */
    @ApiModelProperty(value = "用户员工编号")
    @TableField("`user_employee_num`")
    private String userEmployeeNum;

    /**
     * 联系地址
     */
    @ApiModelProperty(value = "联系地址")
    @TableField("`link_address`")
    private String linkAddress;

    /**
     * 联系地址
     */
    @ApiModelProperty(value = "备注信息")
    @TableField("`remark`")
    private String remark;

    /**
     * 数据权限 0 或 1 查看个人数据  2 查看本部门数据 4.当前组织以及下级数据 8:查看指定部门数据
     */
    @ApiModelProperty(value = "数据权限 1 查看个人数据  2 查看本部门数据 4.当前组织以及下级数据 8:查看指定部门数据")
    @TableField("`data_level`")
    private Integer dataLevel;

    /**
     * 0：申请加入，待审核；1：正常；2：审核不通过，待完善信息；   -1 ：离职，删除
     */
    @ApiModelProperty(value = "0：申请加入，待审核；1：正常；2：审核不通过，待完善信息；   -1 ：离职，删除")
    @TableField("`status`")
    private Integer status;

    /**
     * 乐观锁版本号
     */
    @ApiModelProperty(value = "乐观锁版本号")
    @Version
    @NotNull(message = "缺少版本号参数")
    @TableField("`lock_version`")
    private Long lockVersion;

    // 不在数据库的字段
    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称")
    @TableField(exist = false)
    private String nickname;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名")
    @TableField(exist = false)
    private String username;
    /**
     * 用户基本状态
     */
    @ApiModelProperty(value = "用户的基本状态")
    @TableField(exist = false)
    private String userStatus;

    @ApiModelProperty(value = "组织名称")
    @TableField(exist = false)
    private String  depName;
    /**
     * 用户的角色ids
     */
    @ApiModelProperty(value = "角色id")
    @TableField(exist = false)
    private Set<String> roleIds;


}
